#ifndef TestConstantTable_h
#define TestConstantTable_h

#include <vector>
#include <cppunit/extensions/HelperMacros.h>
#include "ConstantTable.h"
#include "Utilities.h"

class ConstantTableTest : public CPPUNIT_NS::TestFixture 
{
	Type::List::Constant validConInput, invalidConInput, nonExistConInput;
	Type::List::LineEntity validEntityInput, invalidEntityInput;
	Type::List::Line validLineInput, invalidLineInput, nonExistLineInput;

	ConstantTable conTb;
	std::string msg;

	CPPUNIT_TEST_SUITE( ConstantTableTest );
	CPPUNIT_TEST( testInsert );
	CPPUNIT_TEST( testGet );
	CPPUNIT_TEST( testIsExists );
	CPPUNIT_TEST_SUITE_END();

private:
	void testInsert(Type::List::Line, Type::List::LineEntity, Type::List::Constant, bool, std::string);
	void testGetLines(Type::Constant, Type::Entity::Line, bool, Type::List::Line, std::string);
	void testGetConstants(Type::Index::Line, bool, Type::List::Constant, std::string);
	void testIsExists(Type::List::Line, Type::List::Constant, bool, std::string);
public:
	void setUp();
	void tearDown();

	void testInsert();
	void testGet();
	void testIsExists();
};
#endif